﻿/*************************************************************************************
 * 文 件 名:   HK_SplitAnimInspector
 * 
 * 描    述:   模型拆分运动控制脚本的Inspector重写
 * 
 * 版    本：  V1.0
 * 创 建 者：  京产肠饭
 * 创建时间：  2021/11/28
 * 链   接：  https://gitee.com/JingChanChangFan/hk_-unity-tools
*************************************************************************************/

using UnityEditor;
using UnityEngine;

namespace HKTools
{
    [CustomEditor(typeof(HK_SplitAnim))]
    public class HK_SplitAnimInspector : Editor
    {
        HK_SplitAnim splitAnim;

        void OnEnable()
        {
            splitAnim = (HK_SplitAnim)target;
        }

        public override void OnInspectorGUI()
        {
            DrawDefaultInspector();

            if (splitAnim.targetPos.Count > splitAnim.targetNum)
            {
                splitAnim.targetPos[splitAnim.targetPos.Count - 1] = splitAnim.transform.position;
                splitAnim.targetNum = splitAnim.targetPos.Count;
            }

            splitAnim.targetNum = splitAnim.targetPos.Count;

            if (splitAnim.targetPos.Count > splitAnim.targetRot.Count)
                splitAnim.targetRot.Add(new Quaternion());

            if (splitAnim.targetPos.Count < splitAnim.targetRot.Count)
                splitAnim.targetRot.RemoveAt(splitAnim.targetRot.Count - 1);
        }

        void OnSceneGUI()
        {
            if (splitAnim.targetPos.Count <= 0)
                return;

            for (int i = 0; i < splitAnim.targetRot.Count; i++)
            {
                splitAnim.targetRot[i] = Handles.RotationHandle(splitAnim.targetRot[i], splitAnim.targetPos[i]);

                if (splitAnim.targetRot[i].w == 0)
                    splitAnim.targetRot[i] = new Quaternion(splitAnim.targetRot[i].x, splitAnim.targetRot[i].y, splitAnim.targetRot[i].z, 1);
            }

            for (int i = 0; i < splitAnim.targetPos.Count; i++)
            {
                splitAnim.targetPos[i] = Handles.PositionHandle(splitAnim.targetPos[i], splitAnim.targetRot[i]);
            }
        }
    }
}